import java.util.*;
public class test {
    /*给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度。
    请你设计并实现时间复杂度为 O(n) 的算法解决此问题。*/
    //暴力解法
    /*public static int check(int[] nums) {
        int n=nums.length;
        if(n==0)return 0;
        Arrays.sort(nums);
        int currentnum=1;
        int result=1;
        for(int i=1;i<n;i++){//注意书写形式不要溢出
            if(nums[i]!=nums[i-1]){//排除重复元素
                if(nums[i]==nums[i-1]+1) {//如果符合
                    currentnum++;
                }
                else {//不符合先更新当前的连续子序列，再重置起点值
                    result=Math.max(result,currentnum);
                    currentnum = 1;
                }
            }
        }
        //由于比较最后值的是中断序列的，如果是全都是连续序列则需要在比较一次
        return Math.max(result,currentnum);
    }*/
    //哈希表法
    public static int check(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        int result = 0;
        for (int num : set) {//遍历新哈希表中的元素
            if (!set.contains(num - 1)) {//确定连续子序列的开端，如果是则符合，反之则前面还有一个数相差1
                    int currentnum = num;
                    int last = 1;
                    while (set.contains(currentnum + 1)) {
                        currentnum++;
                        last++;
                    }
                    result = Math.max(result, last);
                }
        }
        return result;
    }

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int len=check(nums);
        System.out.println(len);
    }
}


